first link is the best tech article i have read this year 8-) website nodejs experiment -- try clicking some nav icons or search at the top and dive in (for a wireframe-y example using node, React, ES6 and JSX):
this gets replaced
this gets replaced, too
this gets replaced, too

ES6 variadics, spread operator, etc.

simply array filter using new "fat arrow" function defn:
  [{name:"ann",age:13},{name:"bo",age:50},..].filter(person => person.age > 18);

remove all falsy values of array:

( see more )

When a function with a rest parameter is called a new Array is populated with all the trailing arguments.
  This is always an Array (never null or undefined) even if too few arguments were passed.
  function funky(x, y, { assert(Array.isArray(rest); }

  Math.max(x1, x2, ...) returns the argument whose value is greatest. It accepts an arbitrary number of arguments, but can't be applied to Arrays. The spread operator fixes that:
  > Math.max(-1, 5, 11, 3)
  > Math.max(...[-1, 5, 11, 3])

  That gives you a convenient way to concatenate Arrays:
  const x = ['a', 'b'];
  const y = ['c'];
  const z = ['d', 'e'];

  const arr = [...x, ...y, ...z]; // ['a', 'b', 'c', 'd', 'e']

react nice points:

If you want to display an HTML entity within dynamic content, you will run into double escaping issues as React escapes all the strings you are displaying in order to prevent a wide range of XSS attacks by default.

If you pass properties to native HTML elements that do not exist in the HTML specification, React will not render them. If you want to use a custom attribute, you should prefix it with data-

A common pattern is to create several stateless components that just render data, and have a stateful component above them in the hierarchy that passes its state to its children via props. The stateful component encapsulates all of the interaction logic, while the stateless components take care of rendering data in a declarative way.

The "view source" of this page's <script> tag: